iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
Modern Web

[學習筆記] 邊學邊寫 JavaScript 30天系列 第 10 篇

[學習筆記] 邊學邊寫 JavaScript 30天 (10):新手最會出錯的地方

  • 分享至 

  • xImage
  •  

今天內容

  • return(回傳)與console.log(印出)
  • Immutable 觀念

筆記

  • return(回傳)與console.log(印出)

    function plus(a,b) {
        return a + b
    }
    console.log(plus(1,1))  //2
    
    /* 執行順序:
        plus(1,1) -> 引數傳入plus這個function
        return a + b  -> 計算a+b
        印出
    */
    
    function plus2(c,d) {
        console.log(c + d)  //2
        //這裡還有一行沒有寫的 return 預設 undefined
    }
    console.log(plus2(1,1))  //2  undefined
    
    /* 執行順序:
        plus(1,1) -> 引數傳入plus這個function
        印出 c + d
        印出 return
    */
    

    自己的理解:console.log是一個印出的動作(顯示),不是每一個結果都需要印出來。但每個計算都需要有結果(回傳)。

    在瀏覽器打開DevTools,每一行都會幫你回傳

  • Immutable 觀念

    MDN Primitive values:
    All types except objects define immutable values (that is, values which can't be changed). For example, Strings are immutable. We refer to values of these types as "primitive values".

    var a = "hello"
    a.toUpperCase()
    console.log(a)  //hello
    //a 不會因為這樣寫而改變
    
    var b = "hello hello"
    b = b.toUpperCase()
    console.log(b)
    // 要改變原本的要用一個變數來接,不能直接改變(不可變)。
    
    

    但物件型別的不太一樣,以Array舉例:

    var arr = [1, 2, 3]
    arr.push(4)       //不用寫成 arr = arr.push(4) 會直接改到原本的陣列
    console.log(arr)  //[1, 2, 3, 4]
    
    var arr2 = [4, 3, 2, 1]
    arr2.join(",")      //應該要回傳字串的,這樣寫會改不到。要寫成arr = arr.join(",")
    console.log(arr2)   //[4, 3, 2, 1]
    arr2 = arr2.join(",")
    console.log(arr2)   //4,3,2,1  -> 這是字串
    

    通常使用Array Method會回傳成基本型別的都不太會改到原本的值,但回傳成array的大部分都會改到原本的array。


參考資料


上一篇
[學習筆記] 邊學邊寫 JavaScript 30天 (9):常用的內建函式
下一篇
[學習筆記] 邊學邊寫 JavaScript 30天 (11):課後題目練習
系列文
[學習筆記] 邊學邊寫 JavaScript 30天 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言